﻿using System;
using System.Text;
using System.Collections.Generic;
using System.Linq;
using Microsoft.VisualStudio.TestTools.UnitTesting;
using AppiSynchro.Library.Helpers;

namespace AppiSynchro.Library.Test
{
    /// <summary>
    /// Description résumée pour Version
    /// </summary>
    [TestClass]
    public class Version
    {
        public Version()
        {
            //
            // TODO : ajoutez ici la logique du constructeur
            //
        }

        private TestContext testContextInstance;

        /// <summary>
        ///Obtient ou définit le contexte de test qui fournit
        ///des informations sur la série de tests active ainsi que ses fonctionnalités.
        ///</summary>
        public TestContext TestContext
        {
            get
            {
                return testContextInstance;
            }
            set
            {
                testContextInstance = value;
            }
        }

        #region Attributs de tests supplémentaires
        //
        // Vous pouvez utiliser les attributs supplémentaires suivants lorsque vous écrivez vos tests :
        //
        // Utilisez ClassInitialize pour exécuter du code avant d'exécuter le premier test de la classe
        // [ClassInitialize()]
        // public static void MyClassInitialize(TestContext testContext) { }
        //
        // Utilisez ClassCleanup pour exécuter du code une fois que tous les tests d'une classe ont été exécutés
        // [ClassCleanup()]
        // public static void MyClassCleanup() { }
        //
        // Utilisez TestInitialize pour exécuter du code avant d'exécuter chaque test 
        // [TestInitialize()]
        // public void MyTestInitialize() { }
        //
        // Utilisez TestCleanup pour exécuter du code après que chaque test a été exécuté
        // [TestCleanup()]
        // public void MyTestCleanup() { }
        //
        #endregion

        [TestMethod]
        public void Version_WhenGetNotePadVersion_CheckIs5_1_2600_5512()
        {
            #region Actors
            String file = @"C:\WINDOWS\notepad.exe";
            String expectedVersion = "5.1.2600.5512";
            String version;
            #endregion

            #region Activities
            version = VersionHelper.GetFileVersion(file);
            #endregion

            #region Asserts
            Assert.AreEqual(expectedVersion, version);
            #endregion
        }

        [TestMethod]
        public void Version_WhenGetilasmVersion_CheckIs2_0_50727_3053()
        {
            #region Actors
            String file = @"C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\ilasm.exe";
            String expectedVersion = "2.0.50727.3053";
            String version;
            #endregion

            #region Activities
            version = VersionHelper.GetFileVersion(file);
            #endregion

            #region Asserts
            Assert.AreEqual(expectedVersion, version);
            #endregion
        }
    }
}
